/*
 * Copyright (c) 2025 Industrial Software Feature Database
 */
package com.comac.ins.bomt.service;

import com.comac.ins.bomt.domain.response.OriginalBomUploadResponse;
import com.comac.ins.bomt.domain.vo.DetailStandardBomVo;
import com.comac.ins.bomt.domain.vo.DetailStrengthBomVo;
import com.comac.ins.common.core.domain.model.LoginUser;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * Bom管理服务接口
 *
 * @author zhanghongyi
 * @date 2024 /8/6 16:30
 * @description BomManageService
 */
public interface BomManageService {
    /**
     * 上传模型状态清单
     *
     * @param loginUser     the login user
     * @param file          the file
     * @param aircraftModel the aircraft model
     * @param track         the track
     */
    void uploadModelStatus(LoginUser loginUser, MultipartFile file,String describe, String aircraftModel, String track);

    /**
     * 上传原始装机清单
     *
     * @param loginUser     the login user
     * @param file          the file
     * @param aircraftModel the aircraft model
     * @param desc 描述
     * @return the original bom upload response
     */
    OriginalBomUploadResponse uploadOrigin(LoginUser loginUser, MultipartFile file, String aircraftModel, String desc);

    /**
     * 上传初始化数据(包含标准装机清单&强度数模清单的Zip文件)
     *
     * @param loginUser     the login user
     * @param file          the file
     * @param aircraftModel the aircraft model
     * @param desc 描述
     */
    void uploadInit(LoginUser loginUser, MultipartFile file, String aircraftModel, String desc);

    /**
     * 修改标准装机清单明细
     *
     * @param loginUser     the login user
     * @param modifyDetails the modify details
     * @param deleteIds     the delete ids
     */
    void modifyStandardBomDetail(LoginUser loginUser, List<DetailStandardBomVo> modifyDetails, List<Long> deleteIds);

    /**
     * 修改强度数模清单明细
     *
     * @param loginUser     the login user
     * @param modifyDetails the modify details
     * @param deleteIds     the delete ids
     */
    void modifyStrengthBomDetail(LoginUser loginUser, List<DetailStrengthBomVo> modifyDetails, List<Long> deleteIds);
}
